package com.af.system.util;

import java.math.BigDecimal;

/**
 * @author : zhenyun.su
 * @comment : Boolean工具类， 可进行String, Object和Boolean类型转换
 * @since : 2022/11/28
 */

public abstract class AfBooleanUtils {

    /*
     * @comment : 将String必须为"true", "TRUE", "false", "FALSE", null； 若为空，则取默认值defaultValue
     */
    public static Boolean boolValue(String o, Boolean defaultValue){
        if (o == null) {
            return defaultValue;
        }else{
            return Boolean.valueOf(o);
        }
    }

    /*
     * @comment : 将"yes","no","true", 转换true； "no", "of", "false"转换false； 若为空，则取默认值defaultValue
     */
    public static Boolean boolValueExt(String o, Boolean defaultValue){
        if (o == null) {
            return defaultValue;
        };
        if ("yes".equalsIgnoreCase(o) || "on".equalsIgnoreCase(o)) {
            return true;
        };
        if ("no".equalsIgnoreCase(o) || "off".equalsIgnoreCase(o)) {
            return false;
        };
        return Boolean.valueOf(o);
    }
    /*
     * @comment : 将Object转换boolean， Object必须为"true", "TRUE", "false", "FALSE", null； 若为空，则取默认值defaultValue
     */
    public static Boolean boolValue(Object o, Boolean defaultValue){
        if (o == null) {
            return defaultValue;
        }else{
            return Boolean.valueOf(o.toString());
        }
    }


    public static void main(String[] args) {
        System.out.println(boolValue("true", false));
        System.out.println(boolValue("TRUE", false));
        System.out.println(boolValue("YES", false));
        System.out.println(boolValueExt("YES", false));
        System.out.println(boolValueExt("on", false));
        System.out.println(boolValueExt("OFF", false));

    }
}
